<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>LiquidFun: b2World Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">LiquidFun
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classb2_world-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">b2World Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="b2_world_8h_source.html">b2World.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aeccc87fd9e36702c821a8244ca7cd875"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#aeccc87fd9e36702c821a8244ca7cd875">b2World</a> (const <a class="el" href="structb2_vec2.html">b2Vec2</a> &amp;gravity)</td></tr>
<tr class="separator:aeccc87fd9e36702c821a8244ca7cd875"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5250ae4487475c33ccefdead07c768c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5250ae4487475c33ccefdead07c768c8"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a5250ae4487475c33ccefdead07c768c8">~b2World</a> ()</td></tr>
<tr class="memdesc:a5250ae4487475c33ccefdead07c768c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destruct the world. All physics entities are destroyed and all heap memory is released. <br/></td></tr>
<tr class="separator:a5250ae4487475c33ccefdead07c768c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae377f2dd5512ada7d27f4ad3541c75bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#ae377f2dd5512ada7d27f4ad3541c75bf">SetDestructionListener</a> (<a class="el" href="classb2_destruction_listener.html">b2DestructionListener</a> *listener)</td></tr>
<tr class="separator:ae377f2dd5512ada7d27f4ad3541c75bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85e6e1e911c7d6366f8c7d57a12b72ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a85e6e1e911c7d6366f8c7d57a12b72ff">SetContactFilter</a> (<a class="el" href="classb2_contact_filter.html">b2ContactFilter</a> *filter)</td></tr>
<tr class="separator:a85e6e1e911c7d6366f8c7d57a12b72ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a614549967fb8a1584b61c11e2d553d42"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a614549967fb8a1584b61c11e2d553d42">SetContactListener</a> (<a class="el" href="classb2_contact_listener.html">b2ContactListener</a> *listener)</td></tr>
<tr class="separator:a614549967fb8a1584b61c11e2d553d42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6976d2c67400df03c0d44174ffcfb7ee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a6976d2c67400df03c0d44174ffcfb7ee">SetDebugDraw</a> (<a class="el" href="classb2_draw.html">b2Draw</a> *debugDraw)</td></tr>
<tr class="separator:a6976d2c67400df03c0d44174ffcfb7ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eb36e967e43294bfa03ec3d177c2dae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classb2_body.html">b2Body</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a2eb36e967e43294bfa03ec3d177c2dae">CreateBody</a> (const <a class="el" href="structb2_body_def.html">b2BodyDef</a> *def)</td></tr>
<tr class="separator:a2eb36e967e43294bfa03ec3d177c2dae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad52231ad7a9556ef5735ac79cbcd8fcf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#ad52231ad7a9556ef5735ac79cbcd8fcf">DestroyBody</a> (<a class="el" href="classb2_body.html">b2Body</a> *body)</td></tr>
<tr class="separator:ad52231ad7a9556ef5735ac79cbcd8fcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cba9d0653149eb62504154e6fb35021"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classb2_joint.html">b2Joint</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a5cba9d0653149eb62504154e6fb35021">CreateJoint</a> (const <a class="el" href="structb2_joint_def.html">b2JointDef</a> *def)</td></tr>
<tr class="separator:a5cba9d0653149eb62504154e6fb35021"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add5942aef171e54cfa384c8975746dca"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#add5942aef171e54cfa384c8975746dca">DestroyJoint</a> (<a class="el" href="classb2_joint.html">b2Joint</a> *joint)</td></tr>
<tr class="separator:add5942aef171e54cfa384c8975746dca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68b967ae71d8363fe01d37781323e07e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classb2_particle_system.html">b2ParticleSystem</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a68b967ae71d8363fe01d37781323e07e">CreateParticleSystem</a> (const <a class="el" href="structb2_particle_system_def.html">b2ParticleSystemDef</a> *def)</td></tr>
<tr class="separator:a68b967ae71d8363fe01d37781323e07e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a9cdb868bd65cb171696a005ab17205"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a4a9cdb868bd65cb171696a005ab17205">DestroyParticleSystem</a> (<a class="el" href="classb2_particle_system.html">b2ParticleSystem</a> *p)</td></tr>
<tr class="separator:a4a9cdb868bd65cb171696a005ab17205"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2e8f623c5bae23fd47ae234a0e96420"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#aa2e8f623c5bae23fd47ae234a0e96420">Step</a> (float32 timeStep, int32 velocityIterations, int32 positionIterations, int32 particleIterations)</td></tr>
<tr class="separator:aa2e8f623c5bae23fd47ae234a0e96420"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a8eff61af98461f978fe43f3af7be90"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a7a8eff61af98461f978fe43f3af7be90">Step</a> (float32 timeStep, int32 velocityIterations, int32 positionIterations)</td></tr>
<tr class="separator:a7a8eff61af98461f978fe43f3af7be90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3fe55d26ad28154627a7785e67e994b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#ab3fe55d26ad28154627a7785e67e994b">CalculateReasonableParticleIterations</a> (float32 timeStep) const </td></tr>
<tr class="separator:ab3fe55d26ad28154627a7785e67e994b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac082ab4c4ad0b1c5ec4674315eeec643"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#ac082ab4c4ad0b1c5ec4674315eeec643">ClearForces</a> ()</td></tr>
<tr class="separator:ac082ab4c4ad0b1c5ec4674315eeec643"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a293d9865e407fd463e168b0a29856acc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a293d9865e407fd463e168b0a29856acc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a293d9865e407fd463e168b0a29856acc">DrawDebugData</a> ()</td></tr>
<tr class="memdesc:a293d9865e407fd463e168b0a29856acc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call this to draw shapes and other debug draw data. This is intentionally non-const. <br/></td></tr>
<tr class="separator:a293d9865e407fd463e168b0a29856acc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a711e55d2c6e68400f93472f807c3775b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a711e55d2c6e68400f93472f807c3775b">QueryAABB</a> (<a class="el" href="classb2_query_callback.html">b2QueryCallback</a> *callback, const <a class="el" href="structb2_a_a_b_b.html">b2AABB</a> &amp;aabb) const </td></tr>
<tr class="separator:a711e55d2c6e68400f93472f807c3775b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b05f1812b65fb1540dd2054a10a8da6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a8b05f1812b65fb1540dd2054a10a8da6">QueryShapeAABB</a> (<a class="el" href="classb2_query_callback.html">b2QueryCallback</a> *callback, const <a class="el" href="classb2_shape.html">b2Shape</a> &amp;shape, const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;xf) const </td></tr>
<tr class="separator:a8b05f1812b65fb1540dd2054a10a8da6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad902548be84df9cc36eced0f4c89ab0a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#ad902548be84df9cc36eced0f4c89ab0a">RayCast</a> (<a class="el" href="classb2_ray_cast_callback.html">b2RayCastCallback</a> *callback, const <a class="el" href="structb2_vec2.html">b2Vec2</a> &amp;point1, const <a class="el" href="structb2_vec2.html">b2Vec2</a> &amp;point2) const </td></tr>
<tr class="separator:ad902548be84df9cc36eced0f4c89ab0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b87c03955e3312d308ddf679adf3c85"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classb2_body.html">b2Body</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a1b87c03955e3312d308ddf679adf3c85">GetBodyList</a> ()</td></tr>
<tr class="separator:a1b87c03955e3312d308ddf679adf3c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7c43e574c60203db003645153663266"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab7c43e574c60203db003645153663266"></a>
const <a class="el" href="classb2_body.html">b2Body</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>GetBodyList</b> () const </td></tr>
<tr class="separator:ab7c43e574c60203db003645153663266"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55db7240f8290aa02cab79f181934de8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classb2_joint.html">b2Joint</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a55db7240f8290aa02cab79f181934de8">GetJointList</a> ()</td></tr>
<tr class="separator:a55db7240f8290aa02cab79f181934de8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a966ceb42d968a8a544d60826ce0ed925"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a966ceb42d968a8a544d60826ce0ed925"></a>
const <a class="el" href="classb2_joint.html">b2Joint</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>GetJointList</b> () const </td></tr>
<tr class="separator:a966ceb42d968a8a544d60826ce0ed925"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c16a172a265ef6ee282d7a69650caeb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classb2_particle_system.html">b2ParticleSystem</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a6c16a172a265ef6ee282d7a69650caeb">GetParticleSystemList</a> ()</td></tr>
<tr class="separator:a6c16a172a265ef6ee282d7a69650caeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfe0118c5ac7a7f47e7ace3e37303691"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acfe0118c5ac7a7f47e7ace3e37303691"></a>
const <a class="el" href="classb2_particle_system.html">b2ParticleSystem</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>GetParticleSystemList</b> () const </td></tr>
<tr class="separator:acfe0118c5ac7a7f47e7ace3e37303691"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1e1c59fd7534c0268c2a3e31370a425"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classb2_contact.html">b2Contact</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#ab1e1c59fd7534c0268c2a3e31370a425">GetContactList</a> ()</td></tr>
<tr class="separator:ab1e1c59fd7534c0268c2a3e31370a425"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15e9281350c0494954197801372e3dbb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a15e9281350c0494954197801372e3dbb"></a>
const <a class="el" href="classb2_contact.html">b2Contact</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>GetContactList</b> () const </td></tr>
<tr class="separator:a15e9281350c0494954197801372e3dbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6755872564fc3db70c69d2b9d349fa33"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6755872564fc3db70c69d2b9d349fa33"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a6755872564fc3db70c69d2b9d349fa33">SetAllowSleeping</a> (bool flag)</td></tr>
<tr class="memdesc:a6755872564fc3db70c69d2b9d349fa33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable sleep. <br/></td></tr>
<tr class="separator:a6755872564fc3db70c69d2b9d349fa33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf98b836840452d646927ba19a02316f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf98b836840452d646927ba19a02316f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>GetAllowSleeping</b> () const </td></tr>
<tr class="separator:aaf98b836840452d646927ba19a02316f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e8c12142e8c4884a18787926a261359"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8e8c12142e8c4884a18787926a261359"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a8e8c12142e8c4884a18787926a261359">SetWarmStarting</a> (bool flag)</td></tr>
<tr class="memdesc:a8e8c12142e8c4884a18787926a261359"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable warm starting. For testing. <br/></td></tr>
<tr class="separator:a8e8c12142e8c4884a18787926a261359"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7679b68ff6bf97d31a6136efaee562e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af7679b68ff6bf97d31a6136efaee562e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>GetWarmStarting</b> () const </td></tr>
<tr class="separator:af7679b68ff6bf97d31a6136efaee562e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a536dd9181c2e20096073e3cfe2c8530a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a536dd9181c2e20096073e3cfe2c8530a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a536dd9181c2e20096073e3cfe2c8530a">SetContinuousPhysics</a> (bool flag)</td></tr>
<tr class="memdesc:a536dd9181c2e20096073e3cfe2c8530a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable continuous physics. For testing. <br/></td></tr>
<tr class="separator:a536dd9181c2e20096073e3cfe2c8530a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa11dbc1175a7a458e007722ab7287ff1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa11dbc1175a7a458e007722ab7287ff1"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>GetContinuousPhysics</b> () const </td></tr>
<tr class="separator:aa11dbc1175a7a458e007722ab7287ff1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8aacc78ea4753075067daff51b61778"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae8aacc78ea4753075067daff51b61778"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#ae8aacc78ea4753075067daff51b61778">SetSubStepping</a> (bool flag)</td></tr>
<tr class="memdesc:ae8aacc78ea4753075067daff51b61778"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable single stepped continuous physics. For testing. <br/></td></tr>
<tr class="separator:ae8aacc78ea4753075067daff51b61778"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3922f4935ad0dd7f85eea7550e18c5d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae3922f4935ad0dd7f85eea7550e18c5d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>GetSubStepping</b> () const </td></tr>
<tr class="separator:ae3922f4935ad0dd7f85eea7550e18c5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67f1f9fbdd85abd2100104c5eabe17cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a67f1f9fbdd85abd2100104c5eabe17cb"></a>
int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a67f1f9fbdd85abd2100104c5eabe17cb">GetProxyCount</a> () const </td></tr>
<tr class="memdesc:a67f1f9fbdd85abd2100104c5eabe17cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of broad-phase proxies. <br/></td></tr>
<tr class="separator:a67f1f9fbdd85abd2100104c5eabe17cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4559122ea51401b4fb7342eb6232ce74"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4559122ea51401b4fb7342eb6232ce74"></a>
int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a4559122ea51401b4fb7342eb6232ce74">GetBodyCount</a> () const </td></tr>
<tr class="memdesc:a4559122ea51401b4fb7342eb6232ce74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of bodies. <br/></td></tr>
<tr class="separator:a4559122ea51401b4fb7342eb6232ce74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54a95a98787ed5f383c6549ee1f4c4d5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a54a95a98787ed5f383c6549ee1f4c4d5"></a>
int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a54a95a98787ed5f383c6549ee1f4c4d5">GetJointCount</a> () const </td></tr>
<tr class="memdesc:a54a95a98787ed5f383c6549ee1f4c4d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of joints. <br/></td></tr>
<tr class="separator:a54a95a98787ed5f383c6549ee1f4c4d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcc976f1755f9bb94a8650f5f4219a8d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abcc976f1755f9bb94a8650f5f4219a8d"></a>
int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#abcc976f1755f9bb94a8650f5f4219a8d">GetContactCount</a> () const </td></tr>
<tr class="memdesc:abcc976f1755f9bb94a8650f5f4219a8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of contacts (each may have 0 or more contact points). <br/></td></tr>
<tr class="separator:abcc976f1755f9bb94a8650f5f4219a8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48f90a31dc2ad30dbc50cac5111400d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a48f90a31dc2ad30dbc50cac5111400d7"></a>
int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a48f90a31dc2ad30dbc50cac5111400d7">GetTreeHeight</a> () const </td></tr>
<tr class="memdesc:a48f90a31dc2ad30dbc50cac5111400d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the height of the dynamic tree. <br/></td></tr>
<tr class="separator:a48f90a31dc2ad30dbc50cac5111400d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fb7c28d042b600ba1155e3d38f1c5f9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9fb7c28d042b600ba1155e3d38f1c5f9"></a>
int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a9fb7c28d042b600ba1155e3d38f1c5f9">GetTreeBalance</a> () const </td></tr>
<tr class="memdesc:a9fb7c28d042b600ba1155e3d38f1c5f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the balance of the dynamic tree. <br/></td></tr>
<tr class="separator:a9fb7c28d042b600ba1155e3d38f1c5f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e9dceab7052fd6e0d73d6024cca1bcb"><td class="memItemLeft" align="right" valign="top">float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a0e9dceab7052fd6e0d73d6024cca1bcb">GetTreeQuality</a> () const </td></tr>
<tr class="separator:a0e9dceab7052fd6e0d73d6024cca1bcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeafa43d6580e1dddb0675e672ca2375c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeafa43d6580e1dddb0675e672ca2375c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#aeafa43d6580e1dddb0675e672ca2375c">SetGravity</a> (const <a class="el" href="structb2_vec2.html">b2Vec2</a> &amp;gravity)</td></tr>
<tr class="memdesc:aeafa43d6580e1dddb0675e672ca2375c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the global gravity vector. <br/></td></tr>
<tr class="separator:aeafa43d6580e1dddb0675e672ca2375c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e34bcd2f75fbdd41e2d84b3eb26d1ab"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1e34bcd2f75fbdd41e2d84b3eb26d1ab"></a>
<a class="el" href="structb2_vec2.html">b2Vec2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a1e34bcd2f75fbdd41e2d84b3eb26d1ab">GetGravity</a> () const </td></tr>
<tr class="memdesc:a1e34bcd2f75fbdd41e2d84b3eb26d1ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the global gravity vector. <br/></td></tr>
<tr class="separator:a1e34bcd2f75fbdd41e2d84b3eb26d1ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae50c318304546c9cc066ee382668c4a1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae50c318304546c9cc066ee382668c4a1"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#ae50c318304546c9cc066ee382668c4a1">IsLocked</a> () const </td></tr>
<tr class="memdesc:ae50c318304546c9cc066ee382668c4a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the world locked (in the middle of a time step). <br/></td></tr>
<tr class="separator:ae50c318304546c9cc066ee382668c4a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2bced28ddef5bbb00ed5666e5e9f620"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa2bced28ddef5bbb00ed5666e5e9f620"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#aa2bced28ddef5bbb00ed5666e5e9f620">SetAutoClearForces</a> (bool flag)</td></tr>
<tr class="memdesc:aa2bced28ddef5bbb00ed5666e5e9f620"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set flag to control automatic clearing of forces after each time step. <br/></td></tr>
<tr class="separator:aa2bced28ddef5bbb00ed5666e5e9f620"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af56cc43ebde27946ed39382b4ea31640"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af56cc43ebde27946ed39382b4ea31640"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#af56cc43ebde27946ed39382b4ea31640">GetAutoClearForces</a> () const </td></tr>
<tr class="memdesc:af56cc43ebde27946ed39382b4ea31640"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the flag that controls automatic clearing of forces after each time step. <br/></td></tr>
<tr class="separator:af56cc43ebde27946ed39382b4ea31640"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc33e20e64252c5be115216051408047"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#afc33e20e64252c5be115216051408047">ShiftOrigin</a> (const <a class="el" href="structb2_vec2.html">b2Vec2</a> &amp;newOrigin)</td></tr>
<tr class="separator:afc33e20e64252c5be115216051408047"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16259159ae1719c30808561c990a8c05"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a16259159ae1719c30808561c990a8c05"></a>
const <a class="el" href="classb2_contact_manager.html">b2ContactManager</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a16259159ae1719c30808561c990a8c05">GetContactManager</a> () const </td></tr>
<tr class="memdesc:a16259159ae1719c30808561c990a8c05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the contact manager for testing. <br/></td></tr>
<tr class="separator:a16259159ae1719c30808561c990a8c05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af41b3f1a21efc854b485d311911e24b2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af41b3f1a21efc854b485d311911e24b2"></a>
const <a class="el" href="structb2_profile.html">b2Profile</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#af41b3f1a21efc854b485d311911e24b2">GetProfile</a> () const </td></tr>
<tr class="memdesc:af41b3f1a21efc854b485d311911e24b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current profile. <br/></td></tr>
<tr class="separator:af41b3f1a21efc854b485d311911e24b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73c1fec260d460514edd335d4c235893"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#a73c1fec260d460514edd335d4c235893">Dump</a> ()</td></tr>
<tr class="separator:a73c1fec260d460514edd335d4c235893"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac53c490edf0b775fb21c865df3414eb1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac53c490edf0b775fb21c865df3414eb1"></a>
const <a class="el" href="structb2_version.html">b2Version</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#ac53c490edf0b775fb21c865df3414eb1">GetVersion</a> () const </td></tr>
<tr class="memdesc:ac53c490edf0b775fb21c865df3414eb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get API version. <br/></td></tr>
<tr class="separator:ac53c490edf0b775fb21c865df3414eb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac847bd9b6421a1a9d317be76b03a4878"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac847bd9b6421a1a9d317be76b03a4878"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_world.html#ac847bd9b6421a1a9d317be76b03a4878">GetVersionString</a> () const </td></tr>
<tr class="memdesc:ac847bd9b6421a1a9d317be76b03a4878"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get API version string. <br/></td></tr>
<tr class="separator:ac847bd9b6421a1a9d317be76b03a4878"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a010ab52de250e5fe30a45d642f46405b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a010ab52de250e5fe30a45d642f46405b"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>b2Body</b></td></tr>
<tr class="separator:a010ab52de250e5fe30a45d642f46405b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb35b0e61f6ee3cc516c40ea251f3236"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb35b0e61f6ee3cc516c40ea251f3236"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>b2Fixture</b></td></tr>
<tr class="separator:afb35b0e61f6ee3cc516c40ea251f3236"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aece264d42f69aed410f5eb3beba6ddf2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aece264d42f69aed410f5eb3beba6ddf2"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>b2ContactManager</b></td></tr>
<tr class="separator:aece264d42f69aed410f5eb3beba6ddf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0171f9dac44cc7aae065c618c0d165b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad0171f9dac44cc7aae065c618c0d165b"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>b2Controller</b></td></tr>
<tr class="separator:ad0171f9dac44cc7aae065c618c0d165b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a794c652370872a38130e7ed5120468f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a794c652370872a38130e7ed5120468f4"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>b2ParticleSystem</b></td></tr>
<tr class="separator:a794c652370872a38130e7ed5120468f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The world class manages all physics entities, dynamic simulation, and asynchronous queries. The world also contains efficient memory management facilities. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aeccc87fd9e36702c821a8244ca7cd875"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">b2World::b2World </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structb2_vec2.html">b2Vec2</a> &amp;&#160;</td>
          <td class="paramname"><em>gravity</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Construct a world object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gravity</td><td>the world gravity vector. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ab3fe55d26ad28154627a7785e67e994b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int b2World::CalculateReasonableParticleIterations </td>
          <td>(</td>
          <td class="paramtype">float32&#160;</td>
          <td class="paramname"><em>timeStep</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Recommend a value to be used in <code>Step</code> for <code>particleIterations</code>. This calculation is necessarily a simplification and should only be used as a starting point. Please see "Particle Iterations" in the Programmer's Guide for details. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">timeStep</td><td>is the value to be passed into <code>Step</code>. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac082ab4c4ad0b1c5ec4674315eeec643"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2World::ClearForces </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Manually clear the force buffer on all bodies. By default, forces are cleared automatically after each call to Step. The default behavior is modified by calling SetAutoClearForces. The purpose of this function is to support sub-stepping. Sub-stepping is often used to maintain a fixed sized time step under a variable frame-rate. When you perform sub-stepping you will disable auto clearing of forces and instead call ClearForces after all sub-steps are complete in one pass of your game loop. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classb2_world.html#aa2bced28ddef5bbb00ed5666e5e9f620" title="Set flag to control automatic clearing of forces after each time step. ">SetAutoClearForces</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a2eb36e967e43294bfa03ec3d177c2dae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classb2_body.html">b2Body</a> * b2World::CreateBody </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structb2_body_def.html">b2BodyDef</a> *&#160;</td>
          <td class="paramname"><em>def</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a rigid body given a definition. No reference to the definition is retained. </p>
<dl class="section warning"><dt>Warning</dt><dd>This function is locked during callbacks. </dd></dl>

</div>
</div>
<a class="anchor" id="a5cba9d0653149eb62504154e6fb35021"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classb2_joint.html">b2Joint</a> * b2World::CreateJoint </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structb2_joint_def.html">b2JointDef</a> *&#160;</td>
          <td class="paramname"><em>def</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a joint to constrain bodies together. No reference to the definition is retained. This may cause the connected bodies to cease colliding. </p>
<dl class="section warning"><dt>Warning</dt><dd>This function is locked during callbacks. </dd></dl>

</div>
</div>
<a class="anchor" id="a68b967ae71d8363fe01d37781323e07e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classb2_particle_system.html">b2ParticleSystem</a> * b2World::CreateParticleSystem </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structb2_particle_system_def.html">b2ParticleSystemDef</a> *&#160;</td>
          <td class="paramname"><em>def</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a particle system given a definition. No reference to the definition is retained. </p>
<dl class="section warning"><dt>Warning</dt><dd>This function is locked during callbacks. </dd></dl>

</div>
</div>
<a class="anchor" id="ad52231ad7a9556ef5735ac79cbcd8fcf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2World::DestroyBody </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classb2_body.html">b2Body</a> *&#160;</td>
          <td class="paramname"><em>body</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Destroy a rigid body. This function is locked during callbacks. </p>
<dl class="section warning"><dt>Warning</dt><dd>This automatically deletes all associated shapes and joints. </dd>
<dd>
This function is locked during callbacks. </dd></dl>

</div>
</div>
<a class="anchor" id="add5942aef171e54cfa384c8975746dca"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2World::DestroyJoint </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classb2_joint.html">b2Joint</a> *&#160;</td>
          <td class="paramname"><em>joint</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Destroy a joint. This may cause the connected bodies to begin colliding. </p>
<dl class="section warning"><dt>Warning</dt><dd>This function is locked during callbacks. </dd></dl>

</div>
</div>
<a class="anchor" id="a4a9cdb868bd65cb171696a005ab17205"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2World::DestroyParticleSystem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classb2_particle_system.html">b2ParticleSystem</a> *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Destroy a particle system. </p>
<dl class="section warning"><dt>Warning</dt><dd>This function is locked during callbacks. </dd></dl>

</div>
</div>
<a class="anchor" id="a73c1fec260d460514edd335d4c235893"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2World::Dump </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Dump the world into the log file. </p>
<dl class="section warning"><dt>Warning</dt><dd>this should be called outside of a time step. </dd></dl>

</div>
</div>
<a class="anchor" id="a1b87c03955e3312d308ddf679adf3c85"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classb2_body.html">b2Body</a> * b2World::GetBodyList </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the world body list. With the returned body, use <a class="el" href="classb2_body.html#ad54182a11d02362b027a0eb072775bdc" title="Get the next body in the world&#39;s body list. ">b2Body::GetNext</a> to get the next body in the world list. A NULL body indicates the end of the list. </p>
<dl class="section return"><dt>Returns</dt><dd>the head of the world body list. </dd></dl>

</div>
</div>
<a class="anchor" id="ab1e1c59fd7534c0268c2a3e31370a425"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classb2_contact.html">b2Contact</a> * b2World::GetContactList </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the world contact list. With the returned contact, use <a class="el" href="classb2_contact.html#aebfebb1e4b27dc0bd7aa120093e3d650" title="Get the next contact in the world&#39;s contact list. ">b2Contact::GetNext</a> to get the next contact in the world list. A NULL contact indicates the end of the list. </p>
<dl class="section return"><dt>Returns</dt><dd>the head of the world contact list. </dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>contacts are created and destroyed in the middle of a time step. Use <a class="el" href="classb2_contact_listener.html">b2ContactListener</a> to avoid missing contacts. </dd></dl>

</div>
</div>
<a class="anchor" id="a55db7240f8290aa02cab79f181934de8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classb2_joint.html">b2Joint</a> * b2World::GetJointList </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the world joint list. With the returned joint, use <a class="el" href="classb2_joint.html#a1a0e2137b631010750c728cb4e276e5d" title="Get the next joint the world joint list. ">b2Joint::GetNext</a> to get the next joint in the world list. A NULL joint indicates the end of the list. </p>
<dl class="section return"><dt>Returns</dt><dd>the head of the world joint list. </dd></dl>

</div>
</div>
<a class="anchor" id="a6c16a172a265ef6ee282d7a69650caeb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classb2_particle_system.html">b2ParticleSystem</a> * b2World::GetParticleSystemList </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the world particle-system list. With the returned body, use <a class="el" href="classb2_particle_system.html#a74c0d2611c61375dbcd8cd7b79fb362a" title="Get the next particle-system in the world&#39;s particle-system list. ">b2ParticleSystem::GetNext</a> to get the next particle-system in the world list. A NULL particle-system indicates the end of the list. </p>
<dl class="section return"><dt>Returns</dt><dd>the head of the world particle-system list. </dd></dl>

</div>
</div>
<a class="anchor" id="a0e9dceab7052fd6e0d73d6024cca1bcb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float32 b2World::GetTreeQuality </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get the quality metric of the dynamic tree. The smaller the better. The minimum is 1. </p>

</div>
</div>
<a class="anchor" id="a711e55d2c6e68400f93472f807c3775b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2World::QueryAABB </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classb2_query_callback.html">b2QueryCallback</a> *&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structb2_a_a_b_b.html">b2AABB</a> &amp;&#160;</td>
          <td class="paramname"><em>aabb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Query the world for all fixtures that potentially overlap the provided AABB. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">callback</td><td>a user implemented callback class. </td></tr>
    <tr><td class="paramname">aabb</td><td>the query box. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8b05f1812b65fb1540dd2054a10a8da6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2World::QueryShapeAABB </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classb2_query_callback.html">b2QueryCallback</a> *&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classb2_shape.html">b2Shape</a> &amp;&#160;</td>
          <td class="paramname"><em>shape</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structb2_transform.html">b2Transform</a> &amp;&#160;</td>
          <td class="paramname"><em>xf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Query the world for all fixtures that potentially overlap the provided shape's AABB. Calls QueryAABB internally. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">callback</td><td>a user implemented callback class. </td></tr>
    <tr><td class="paramname">shape</td><td>the query shape </td></tr>
    <tr><td class="paramname">xf</td><td>the transform of the AABB </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad902548be84df9cc36eced0f4c89ab0a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2World::RayCast </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classb2_ray_cast_callback.html">b2RayCastCallback</a> *&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structb2_vec2.html">b2Vec2</a> &amp;&#160;</td>
          <td class="paramname"><em>point1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structb2_vec2.html">b2Vec2</a> &amp;&#160;</td>
          <td class="paramname"><em>point2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Ray-cast the world for all fixtures in the path of the ray. Your callback controls whether you get the closest point, any point, or n-points. The ray-cast ignores shapes that contain the starting point. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">callback</td><td>a user implemented callback class. </td></tr>
    <tr><td class="paramname">point1</td><td>the ray starting point </td></tr>
    <tr><td class="paramname">point2</td><td>the ray ending point </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a85e6e1e911c7d6366f8c7d57a12b72ff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2World::SetContactFilter </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classb2_contact_filter.html">b2ContactFilter</a> *&#160;</td>
          <td class="paramname"><em>filter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Register a contact filter to provide specific control over collision. Otherwise the default filter is used (b2_defaultFilter). The listener is owned by you and must remain in scope. </p>

</div>
</div>
<a class="anchor" id="a614549967fb8a1584b61c11e2d553d42"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2World::SetContactListener </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classb2_contact_listener.html">b2ContactListener</a> *&#160;</td>
          <td class="paramname"><em>listener</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Register a contact event listener. The listener is owned by you and must remain in scope. </p>

</div>
</div>
<a class="anchor" id="a6976d2c67400df03c0d44174ffcfb7ee"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2World::SetDebugDraw </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classb2_draw.html">b2Draw</a> *&#160;</td>
          <td class="paramname"><em>debugDraw</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Register a routine for debug drawing. The debug draw functions are called inside with <a class="el" href="classb2_world.html#a293d9865e407fd463e168b0a29856acc" title="Call this to draw shapes and other debug draw data. This is intentionally non-const. ">b2World::DrawDebugData</a> method. The debug draw object is owned by you and must remain in scope. </p>

</div>
</div>
<a class="anchor" id="ae377f2dd5512ada7d27f4ad3541c75bf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2World::SetDestructionListener </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classb2_destruction_listener.html">b2DestructionListener</a> *&#160;</td>
          <td class="paramname"><em>listener</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Register a destruction listener. The listener is owned by you and must remain in scope. </p>

</div>
</div>
<a class="anchor" id="afc33e20e64252c5be115216051408047"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2World::ShiftOrigin </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structb2_vec2.html">b2Vec2</a> &amp;&#160;</td>
          <td class="paramname"><em>newOrigin</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Shift the world origin. Useful for large worlds. The body shift formula is: position -= newOrigin </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">newOrigin</td><td>the new origin with respect to the old origin </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa2e8f623c5bae23fd47ae234a0e96420"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void b2World::Step </td>
          <td>(</td>
          <td class="paramtype">float32&#160;</td>
          <td class="paramname"><em>timeStep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32&#160;</td>
          <td class="paramname"><em>velocityIterations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32&#160;</td>
          <td class="paramname"><em>positionIterations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32&#160;</td>
          <td class="paramname"><em>particleIterations</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Take a time step. This performs collision detection, integration, and constraint solution. For the numerical stability of particles, minimize the following dimensionless gravity acceleration: gravity / particleRadius * (timeStep / particleIterations)^2 <a class="el" href="b2_particle_8h.html#a26da50c12eeabaa662fb0ccdf624b570" title="A helper function to calculate the optimal number of iterations. ">b2CalculateParticleIterations()</a> or <a class="el" href="classb2_world.html#ab3fe55d26ad28154627a7785e67e994b">CalculateReasonableParticleIterations()</a> help to determine the optimal particleIterations. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">timeStep</td><td>the amount of time to simulate, this should not vary. </td></tr>
    <tr><td class="paramname">velocityIterations</td><td>for the velocity constraint solver. </td></tr>
    <tr><td class="paramname">positionIterations</td><td>for the position constraint solver. </td></tr>
    <tr><td class="paramname">particleIterations</td><td>for the particle simulation. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7a8eff61af98461f978fe43f3af7be90"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void b2World::Step </td>
          <td>(</td>
          <td class="paramtype">float32&#160;</td>
          <td class="paramname"><em>timeStep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32&#160;</td>
          <td class="paramname"><em>velocityIterations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32&#160;</td>
          <td class="paramname"><em>positionIterations</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Take a time step. This performs collision detection, integration, and constraint solution. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">timeStep</td><td>the amount of time to simulate, this should not vary. </td></tr>
    <tr><td class="paramname">velocityIterations</td><td>for the velocity constraint solver. </td></tr>
    <tr><td class="paramname">positionIterations</td><td>for the position constraint solver. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="b2_world_8h_source.html">b2World.h</a></li>
<li>b2World.cpp</li>
</ul>
</div><!-- contents -->
<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-46159502-1', 'auto');
ga('create', 'UA-49880327-7', 'auto', {'name': 'liquidFunTracker'});
ga('send', 'pageview');
ga('liquidFunTracker.send', 'pageview');
</script>
</body>
</html>
